# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=fish
pkgver=3.5.0
pkgrel=0
pkgdesc="Modern interactive commandline shell"
url="https://fishshell.com/"
arch="all"
license="GPL-2.0-only"
depends="bc"
depends_doc="util-linux-misc" # Requires 'ul' program
depends_dev="$pkgname-tools"
makedepends="cmake doxygen gettext-dev ncurses-dev ncurses pcre2-dev py3-sphinx samurai"
checkdepends="py3-pexpect bash"
install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
subpackages="$pkgname-dev $pkgname-doc $pkgname-tools::noarch $pkgname-lang"
source="https://github.com/fish-shell/fish-shell/releases/download/$pkgver/fish-$pkgver.tar.xz
	README.alpine
	"

# secfixes:
#   3.4.0-r0:
#     - CVE-2022-20001

# temp allow textrels on riscv64
[ "$CARCH" = "riscv64" ] && options="$options textrels"

build() {
	cmake -B build -G Ninja \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_LIBDIR=lib \
		-DBUILD_SHARED_LIBS=True \
		-DCMAKE_BUILD_TYPE=MinSizeRel \
		-DCMAKE_INSTALL_SYSCONFDIR=/etc \
		-DBUILD_DOCS=TRUE
	cmake --build build
	cmake --build build --target fish_tests
}

check() {
	cd build
	./fish_tests
}

package() {
	DESTDIR="$pkgdir" cmake --install build
	rm -fr "$pkgdir"/usr/share/$pkgname/groff

	# Install our README
	install -Dm 644 "$srcdir"/README.alpine -t "$pkgdir"/usr/share/doc/fish

	mkdir -p "$pkgdir"/usr/lib
	mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib

	# https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/10159#note_101679
	rm "$pkgdir"/usr/share/fish/completions/rustup.fish

	# https://github.com/fish-shell/fish-shell/issues/2436
	rm "$pkgdir"/usr/share/fish/completions/docker.fish

	# provided by minikube-fish-completion
	rm "$pkgdir"/usr/share/fish/completions/minikube.fish

	# provided by flatpak-fish-completion
	rm "$pkgdir"/usr/share/fish/completions/flatpak.fish

	# provided by helm-fish-completion
	rm "$pkgdir"/usr/share/fish/completions/helm.fish

	# provided by curl-fish-completion
	rm "$pkgdir"/usr/share/fish/completions/curl.fish

	# provided by hugo-fish-completion
	rm "$pkgdir"/usr/share/fish/completions/hugo.fish

	# provided by starship-fish-completion
	rm "$pkgdir"/usr/share/fish/completions/starship.fish
}

doc() {
	default_doc

	amove usr/share/$pkgname/man
}

tools() {
	pkgdesc="$pkgdesc (tools)"
	depends="$pkgname python3 cmd:man"

	amove usr/share/$pkgname/tools
}

sha512sums="
ccec4abcdb425563688c6112f3c9c57add16aa3a05c121d2633b655d27185e1c96c263d51d6af7d83c068580d7d0723c072f1a4853fa8b6736291beeab64b859  fish-3.5.0.tar.xz
c28cef48e3d9cde4956d36192dc221e63eca89282a937e2683578ac0958d98a9c54420aea4f1d91d516f5ee2c74589a75865a973305421e1ad0a9e70854dff4f  README.alpine
"
